<link rel="ractive" href="../shared/header.html" name="Header">
<link rel="ractive" href="./sidebar.html" name="FeaturesSidebar">

<Header app="{{app}}" query="{{query}}"></Header>
<FeaturesSidebar></FeaturesSidebar>

<div class="multi-cdn-load-balancing features">
	<div class="container">
		<div class="row">
			<div class="col-md-12 col-md-offset-6 col-sm-16 col-sm-offset-5 col-xs-16 col-xs-offset-7">
				<div class="category">
					Features
				</div>

				<h1>Multi-CDN Load balancing</h1>
			</div>
		</div>
	</div>

	<section class="section">
		<div class="container">
			<div class="row">
				<div class="col-md-12 col-md-offset-6 col-sm-16 col-sm-offset-5 col-xs-20 col-xs-offset-2">
					<div class="row row-same-height">
						<div class="col-xs-12">
							<h2>Global load balancing</h2>

							<p>
								Unlike the competition, jsDelivr uses a unique Multi-CDN infrastructure to offer the best possible uptime and performance. The main backbone of it is built on top of CDN networks provided by MaxCDN, CloudFlare, KeyCDN and Quantil.
							</p>
							<p>
								We also use custom servers in locations where CDNs have little or no presence. In total at this moment this results in 98 global POP locations. In the future we plan to add even more locations to offer top performance even in less popular countries.
							</p>
							<p>
								Our smart load balancing system ensures not only best possible performance but also the best possible uptime. We have multiple levels of failover and a diverse uptime monitoring system that will catch any downtime or issues and instantly redirect all traffic.
							</p>
							<p>
								Every user gets a unique response that is based on their location and ISP. Each time a users requests to download a file from jsDelivr, our algorithm extracts the performance and availability data it has available for the last few minutes and figures out the optimal provider for that particular user and that particular time. All that happens in a few milliseconds.
							</p>
							<p>
								This algorithm also immediately responds to performance degradation. For example, if a CDN provider gets DDoSed in Europe and their response times increase, jsDelivr will pick up the change and simply stop using this provider in Europe but still consider it for users in USA and other locations that were not affected by the attack.
							</p>
							<p>
								Jealous? We can build a similar system for you. We offer <a href="/consultation-services">CDN and web peformance consultation services.</a>
							</p>
						</div>

						<div class="col-xs-12 text-center">
							<img src="/img/features/multi-cdn-load-balancing/global-load-balancing.png">
						</div>
					</div>
				</div>
			</div>
		</div>
	</section>

	<section class="section">
		<div class="container">
			<div class="row">
				<div class="col-md-12 col-md-offset-6 col-sm-16 col-sm-offset-5 col-xs-20 col-xs-offset-2">
					<div class="row row-same-height">
						<div class="col-xs-12 text-center">
							<img src="/img/features/multi-cdn-load-balancing/real-time-data-monitoring.png">
						</div>

						<div class="col-xs-12">
							<h2>Real-time CDN monitoring</h2>

							<p>
								Our load balancing is based on real time performance data that <a target="_blank" href="http://www.cedexis.com/">Cedexis</a> gathers on all major CDN providers. 1.3 billion RUM (Real User Metrics) performance tests per day are processed and made available to us.
							</p>
							<p>
								To gather these RUM tests, a special JavaScript code was deployed on thousands of websites. Every visitor to one of these websites executes the code and starts testing different CDN providers in the background as they browse the website. You can even do it yourself and <a href="https://github.com/jsdelivr/jsdelivr#contribute-performance-data">help jsDelivr with valuable data</a>.
								The beauty of these tests is that they are not synthetic. They reflect the real performance real users will get if they download a file from one of those CDNs.
							</p>
							<p>
								On top of the RUM uptime information we also use 2 synthetic uptime monitors to monitor all of our providers. This guarantees instant downtime detection and instant failover.
								This uptime information is pulled every single time a user makes a request to cdn.jsdelivr.net, and if any of the monitors reports problems that provider is removed from consideration.
							</p>
							<p>
								As an additional failover layer we are also monitoring our load balancing provider and if for any reason the load-balancer itself fails, all traffic will be automatically switched to a single CDN provider. This happens automatically on the DNS level and it's the last resort to ensure our uptime.
							</p>
						</div>
					</div>
				</div>
			</div>
		</div>
	</section>

	<section class="section">
		<div class="container">
			<div class="row">
				<div class="col-md-12 col-md-offset-6 col-sm-16 col-sm-offset-5 col-xs-20 col-xs-offset-2">
					<div class="row row-same-height">
						<div class="col-xs-12">
							<h2>Infinite options</h2>

							<p>
								Due to its nature jsDelivr was built to be able to switch infrastructure at a minutes notice. We are using the best available services out there and unlike our competition we NEVER vendor lock to any technology, service, or company. If a sponsor pulls its sponsorship or makes unreasonable demands then we can simply switch to a different provider. We maintain 100% control of the project without giving away any power or influence to corporations.
							</p>
							<p>
								Thanks to this we have infinite options and freedom available to us. We use multiple providers in multiple countries and can switch any of them whenever it's needed for the benefit of our users.
							</p>
						</div>

						<div class="col-xs-12 text-center">
							<img src="/img/features/multi-cdn-load-balancing/automatic-cdn-switch.png">
						</div>
					</div>
				</div>
			</div>
		</div>
	</section>
</div>

<script>
	component.exports = {
		data: function () {
			return {
				title: 'Multi-CDN Load balancing - jsDelivr',
			};
		},
	};
</script>
